﻿#include <QApplication>

#include "CustomDebugOut.h"
#include "mainwidget.h"
#include "openglwindiow.h"
#include "opengl_lines.h"
#include "opengl_lines2.h"
#include "opengl_lines3.h"
#include "opengl_lines4.h"
#include "opengl_lines5.h"
#include "opengl_lines6.h"
#include "openglcuttest.h"

#include "AreaTest/areatest.h"
#include "AreaTest/scanview.h"
#include "AreaTest/glwidget.h"

int main(int argc, char *argv[])
{   
    QApplication a(argc, argv);
    qInstallMessageHandler(customDebugOut);
    QSurfaceFormat format;
    format.setSamples(4);
    format.setSwapBehavior(QSurfaceFormat::DoubleBuffer);
    format.setRenderableType(QSurfaceFormat::OpenGL);
    format.setProfile(QSurfaceFormat::CoreProfile);

#ifdef AREA_TEST
//    AreaTest w_test;
//    w_test.setFormat(format);
//    w_test.resize(640, 480);
//    w_test.show();
//    GLWidget view;
    ScanView view;
    view.show();
#endif

#ifdef CUT_TEST
    OpenGLCutTest w_test;
    w_test.setFormat(format);
    w_test.resize(640, 480);
    w_test.show();
#endif

#ifdef NORMAL_TEST
    MainWidget w;
    w.show();
//    OpenGLWindiow glWindow;
//    glWindow.setFormat(format);
//    glWindow.resize(640, 480);
//    glWindow.show();

//    QSurfaceFormat format;
//    format.setSamples(4);
//    format.setRenderableType(QSurfaceFormat::OpenGL);
//    format.setProfile(QSurfaceFormat::CoreProfile);
//    OpenGL_Lines w1;
//    w1.setFormat(format);
//    w1.resize(640, 480);
//    w1.show();
//    OpenGL_Lines2 w2;
//    w2.setFormat(format);
//    w2.resize(640, 480);
//    w2.show();
//    OpenGL_Lines3 w3;
//    w3.setFormat(format);
//    w3.resize(640, 480);
//    w3.show();
//    OpenGL_Lines4 w4;
//    w4.setFormat(format);
//    w4.resize(640, 480);
//    w4.show();
//    OpenGL_Lines5 w5;
//    w5.setFormat(format);
//    w5.resize(640, 480);
//    w5.show();
//    OpenGL_Lines6 w6;
//    w6.setFormat(format);
//    w6.resize(640, 480);
//    w6.show();
#endif
    return a.exec();
}
